foo(function(a) { return a; }); // ERROR
// prefer: foo(a => a)

foo(function() { return this.a; }.bind(this)); // ERROR
// prefer: foo(() => this.a)

foo(function bar() {});

foo(function() {});

foo(nativeCb || function() {});
foo(bar ? function() {} : function() {});
foo(function() { (function() { this; }); });
foo(function() { this; }.bind(this));
foo(bar || function() { this; }.bind(this));
foo(function() { (() => this); }.bind(this));
foo(function bar(a) { a; });
foo(function(a) { a; });

